Skip to main content

App Provisioning

Introduction

App provisioning provides several critical functionalities for usage of the Corva platform. Amongst these, provisioning gives clients the ability to restrict access to apps within their organization, as well as the ability to promote and sell their applications within the Corva app store.


What is Provisioning?

Provisioning provides three main functionalities within the Corva platform

  1. App provisioning: give any client the ability to manage internal subscriptions to apps. The client has the ability to allow or restrict access to applications at a company, program, or rig/frac fleet level.
  2. App purchases: give clients the ability to offer their application in the app store, as well as purchase applications from other clients. To offer any application within the app store, it must be approved through the provisioning app review process which will be described below.
  3. App dependencies: allow clients to have back-end applications added automatically to newly created streams.

Where is Provisioning Located?

App provisioning can be found at the top of Dev Center as its own tab, as may be seen in the image below.

image|690x395

This however is not a default option to all users and it must be requested. In order to request access to the Provisioning tab, please follow the steps on the next section.


Who Can Use Provisioning?

Provisioning is Available to all Corva users upon request. If you do not see the ‘Provisioning’ tab in Dev Center that means that you do not have corresponding access permission.


Request Permission to “Provisioning” Flow

Only Company Admin has access to manage permissions. For a Company Admin the following steps must be followed:

  1. Open your User Profile page
  2. Click “Manage Permissions” button [Must have Permissions management access]
  3. Open “Dev Center” tab
  4. Click “Add Permission” button
  5. Choose ‘Dev Center Component’ = ‘Provisioning’ & ‘Ability’ = ‘Access’
  6. Click “Add Permission” button on modal

image|690x395


How do I use Provisioning?

This section will describe how to use the main three functions of App provisioning.

In this section we describe how you may create internal permissions to applications through the provisioning process. To start the provisioning process you need to have access to “Provisioning” tab in the Dev Center.

NOTE : App Provisioning works on newly created wells and rerun wells only if the apps have been provisioned in the App Provisioning tool before the new well is created or a rerun occurs. If the app is not provisioned before a new well is created or a rerun occurs, then you will need to add the backend app manually to the asset's stream.

NOTE : When creating Program or rig level App Provisioning, they are exclusive. If a provisioning is created for a program and then another for a rig under that program, the rig will be removed from the program provisioning. The only provisioning that is inclusive is a company level provisioning.


Creating App Provisioning

  1. Go to the provisioning tab in Dev Center (step 1 in image)
  1. Open Provisioning section (it has the same name as your company) in the provisioning tab (step 2 in image)
  1. Click the “Create Provisioning” button (step 3 in image)

image|690x395

  1. Input provision name, choose a segment, choose assets and add those apps that should be available in the App Store. Notice, only those assets that you added to the provision will be available while adding App to dashboard.

  2. Save changes

image|690x395

After these steps, all apps that were added to the provision will be available in the App Store for other users of the same company. When a user adds an App, the user is able to choose only those assets that were set in provision.


Provisioning Use Cases

The following set of use cases provide examples of how provisioning can be used to segment application accessibility by company, program and rig or frac fleet.

The following examples will be provided for the Drilling segment although the same rules work for Completion segments, however, rigs needs to be changed on completion asset types (frac fleet and so on).


Company's asset structure:

Company = [ Program A, Program B, Rig G ], where

Program A = [ Rig A, Rig B, Rig C ]

Program B = [ Rig D, Rig E, Rig F ]


List of apps to be subscribed to:

Apps = [ App X, App Y, App Z ]


Use Case 1

Problem:

  1. The company wants App X, App Y, and App Z to have access to all company assets

image|690x395

Solution:

  1. Create 1 company level subscription and put all apps [ App X, App Y, App Z ]

Subscription details:

  1. Segment = Drilling
  2. Asset Type = Company
  3. Apps = [ App X, App Y, App Z ]

Use Case 2

Problem:

The company wants:

  1. App X & App Y have access to all company assets
  2. App Z has access to [ Rig E, Rig F, Rig G ]

image|690x395

Solution:

  1. Create 1 company level subscription and add App X and App Y
  2. Create 1 rig subscription for App Z and add rigs [Rig E, Rig F, Rig G]

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Company
    • Apps = [ App X, App Y ]
  2. Subscription #2
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = [ Rig E, Rig F, Rig G ]
    • Apps = [ App Z ]

Use Case 3

Problem:

The company wants:

  1. App X has access to all company assets
  2. App Y has access to all rigs from Program B
  3. App Z has access to Rig G only

image|690x395

Solution:

  1. Create 1 company level subscription and add App X
  2. Create 1 program subscription for App Y and for rigs [ Rig D, Rig E, Rig F ]
  3. Create 1 rig subscription for App Z and Rig G

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Company
    • Apps = [ App X ]
  2. Subscription #2
    • Segment = Drilling
    • Asset Type = Program
    • List of Programs = Program B
    • Apps = [ App Y ]
  3. Subscription #3
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = Rig G
    • Apps = [ App Z ]

Use Case 4

Problem:

The company wants:

  1. App X has access to all company assets
  2. App Y has access to Rig D & Rig E from Program B
  3. App Z has access to Rig F from Program B

image|690x395

Solution:

  1. Create 1 company level subscription and add App X
  2. Create 1 rig subscription for App Y and rigs [ Rig D, Rig E ]
  3. Create 1 rig subscription for App Z and Rig F

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Company
    • Apps = [ App X ]
  2. Subscription #2
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = [ Rig D, Rig E ]
    • Apps = [ App Y ]
  3. Subscription #3
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = Rig F
    • Apps = [ App Z ]

Use Case 5

Problem:

The company wants:

  1. App X has access to all company assets
  2. App Y has access to all assets from Program A
  3. App Z has access to all assets from Program B

image|690x395

Solution:

  1. Create 1 company level subscription and add App X
  2. Create 1 program subscription for Program A for App Y
  3. Create 1 program subscription for Program B for App Z.

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Company
    • Apps = [ App X ]
  2. Subscription #2
    • Segment = Drilling
    • Asset Type = Program
    • List of Programs = [ Program A ]
    • Apps = [ App Y ]
  3. Subscription #3
    • Segment = Drilling
    • Asset Type = Program
    • List of Programs = [ Program B ]
    • Apps = [ App Z ]

Use Case 6

Problem:

The company wants:

  1. App X has access to all company assets
  2. App Y has access to all assets from Program A
  3. App Z has access to all assets [ Rig D, Rig E ] from Program B
  4. App Q has access to Rig F from Program B

image|690x395

Solution:

  1. Create 1 company level subscription and add App X
  2. Create 1 program subscription for App Y
  3. Create 1 rig subscription for rigs = [ Rig D, Rig E ] for App Z
  4. Create 1 rig subscription for Rig F for App Q

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Company
    • Apps = [ App X ]
  2. Subscription #2
    • Segment = Drilling
    • Asset Type = Program
    • List of Programs = [ Program A ]
    • Apps = [ App Y ]
  3. Subscription #3
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = [ Rig D, Rig E ]
    • Apps = [ App Z ]
  4. Subscription #4
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = [ Rig F ]
    • Apps = [ App Q ]

Use Case 7

Problem:

The company wants:

  1. App X has access to all assets from Program A
  2. App Y, App Z have access to all assets from Program B

image|690x395

Solution:

  1. Create 1 program subscription for Program A for App Y

  2. Create 1 program subscription for Program B for App Y & App Z

    NOTE : No need to create company subscription

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Program
    • List of Programs = [ Program A ]
    • Apps = [ App X ]
  2. Subscription #2
    • Segment = Drilling
    • Asset Type = Program
    • List of Programs = [ Program B ]
    • Apps = [ App Y, App Z ]

Use Case 8

Problem:

The company wants:

  1. All apps to be available only for Rig A

image|690x395

Solution:

  1. Create 1 rig level subscription and add all apps [ App X, App Y, App Z ]

    NOTE : No need to create company subscription

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = [ Rig A ]
    • Apps = [ App X, App Y, App Z ]

Use Case 9

Problem:

The company wants:

  1. App X will be available only Rig A
  2. App Y will be available only Rig G
  3. App Z should be unavailable for adding to a dashboard

image|690x395

Solution:

  1. Create 1 rig level subscription and add App X

  2. Create 1 rig level subscription and put App Y

    NOTE : No need to create company subscription

Subscription details:

  1. Subscription #1
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = [ Rig A ]
    • Apps = [ App X ]
  2. Subscription #2
    • Segment = Drilling
    • Asset Type = Rig
    • List of Rigs = [ Rig G ]
    • Apps = [ App Y ]

What is the App Availability with or without Permissions?

App VisibilityRoleProvisioning ExistsAble to Add App to Dashboard
PrivateDeveloper Admin at the same company (not app owner)NoNo
DeveloperDeveloper Admin at the same company (not app owner)NoYes
CompanyDeveloper Admin at the same company (not app owner)NoNo
PublicDeveloper Admin at the same company (not app owner)NoYes
PrivateAdmin at the same companyNoNo
DeveloperAdmin at the same companyNoNo
CompanyAdmin at the same companyNoNo
PublicAdmin at the same companyNoYes
PrivateUser at the same companyNoNo
DeveloperUser at the same companyNoNo
CompanyUser at the same companyNoNo
PublicUser at the same companyNoYes
PrivateRestricted user at the same companyNoNo
DeveloperRestricted user at the same companyNoNo
CompanyRestricted user at the same companyNoNo
PublicRestricted user at the same companyNoYes
PrivateApp ownerYesNo
DeveloperApp ownerYesYes
CompanyApp ownerYesYes
PublicApp ownerYesYes
PrivateDeveloper Admin at the same company (not app owner)YesNo
DeveloperDeveloper Admin at the same company (not app owner)YesYes
CompanyDeveloper Admin at the same company (not app owner)YesYes
PublicDeveloper Admin at the same company (not app owner)YesYes
PrivateAdmin at the same companyYesNo
DeveloperAdmin at the same companyYesNo
CompanyAdmin at the same companyYesYes
PublicAdmin at the same companyYesYes
PrivateUser at the same companyYesNo
DeveloperUser at the same companyYesNo
CompanyUser at the same companyYesYes
PublicUser at the same companyYesYes
PrivateRestricted User at the same companyYesNo
DeveloperRestricted User at the same companyYesNo
CompanyRestricted User at the same companyYesYes
PublicRestricted User at the same companyYesYes

App Purchases

This section describes how to place an app in the App Store and make it available for purchase by other third parties, as well as how to purchase a third company app and add it to a dashboard.


Request to Place an App in the App Store

Before the app becomes available in the App Store, at least one of its versions should be successfully validated and approved.

A Developer Admin needs to do the following:

  1. Open App page in Dev Center on “Version” tab
  2. Upload the app package and publish it.
  3. Send app package to Corva for Review

image|690x395

  1. Wait until the review request is processed. Once approved, you will see Review Status = Approved. Package approval automatically sets App visibility = Public. Once Visibility = Public, the app is available in the App Store. Admins from other companies are able to request it.
  2. Once app is reviewed you will receive a Status updated in the Provisioning -> Reviews page and a notification.

image|690x395

Recommendation : Before sending an app for review, please double check that it works smoothly and all needed info is added to the “App Info” page. User must consider the following two scenarios:

NOTE : If the app visibility is changed from public to any other visibility, the app will disappear from App Store. The app will stil be presented on dashboards where it had been added before.

NOTE : If you did not pass review and package review status becomes “Rejected”, that means that your app does not meet requirements to become available on the App Store. Make the suggested updates, then upload the new package and send it to review again.


Request to Purchase an App from the App Store?

Before any company user is able to add an app to a dashboard, it needs to be requested by Company admin

  1. Company Admin goes to App store to request an App of interest

image|690x395

  1. Company admin is able to request additional apps from the same developer and the same segment along with initial app

image|690x395

  1. Connect assets that will be available for requested apps

image|690x395

  1. Confirm that you grant the App and App Developers access to datasets (without this step you are not able to proceed with purchase)

image|690x395

  1. After this, you need to wait while the app owner approves the request. During this time you will see “Waiting for approval” on app’s card

image|690x395

  1. Once it approved, users are able to add the app to their dashboards

image|690x395


Request to Upgrade Purchased App

  1. Find the App in the App Store that was previously purchased

  2. Click “Upgrade” button

image|690x395

  1. Set updated list of assets, mark checkbox and press “Send” button

image|690x395

  1. While you are waiting for update request approve, you are able to add app with initial list of assets

image|690x395

  1. After the upgrade request is approved, there will be an upgraded list of assets available

image|690x395


App Dependencies

Upon having an application provisioned for an asset, rig (or Completions asset type), program or company, any backend application will be automatically added to a new streams created. Since provisioning is created for front end applications, dependencies to backend applications create the appropriate link.

This section describes how to set backend application dependencies such that they are automatically added to streams if they are provisioned as described in the previous section, “Creating App Provisioning”.

Dependencies can only be created between backend and frontend apps. If a backend app does not have a frontend app, then a dummy frontend app must be created as a shell to attach the proper dependencies. The following two sections describe how to add dependencies, as well as how to create a dummy frontend app to host the dependent backen app.


Backend Dependencies to a Frontend App

In the example below, we show how the backend app Wireline Wits Summary, is added as a dependency to the fronent app Wireline Traces.

  1. Go to frontend App in the App Store that you wish to add dependencies to

image|690x395

  1. Select Dependencies from navigation bar on the left

image|690x395

  1. Select the backend application from the dropdown menu

image|690x395

  1. The backend application will be displayed with a chip below

image|690x395

  1. Once the backend application is added as a dependency, it will be visible in the Provisioning screen as “Related Backend App”. The image below displays how the frontend application, provisiontestone, was provisioned for asset Rishi_Michael_FF, with the backend app Apptime2 as a dependent.

image|690x395


Backend Dependencies without a Frontend App

In the case where a backend app does not have a frontend app, but is still required to be deployed automatically to new streams, a dummy frontend app must be created as a shell with at least one package, even if it is empty. The following process must be used.

  1. As developeradmin of the same company of the backend application that needs provisioning, go to the App Store
  2. Create New App on the top right

image|690x395

  1. Select Frontend App

image|690x395

  1. Select appropriate segment and same category as the backend app to be provisioned

image|690x395

  1. Select desired CLI instructions

image|690x395

  1. Go to your desired CLI editor and follow instruction on step 5. If npm is not up to date execute: npm i -g @corva/create-app yarn

  2. Pick javascript or typescript and copy command from step 5 to execute in CLI. Enter the directory for the app and execute: yarn zip . This will create a zip package.

image|690x395

  1. Go back to Corva App Creation wizard and select "ADD NEW APP" (complete step 5). You will be re-directed to App Info page in Dev Center.

  2. Select Versions from left hand column.

image|690x395

  1. Press UPLOAD NEW VERSION option on top right and select the zip created in step 6. Otherwise drag and driop the zip file into into the drag and drop window.

image|690x395

  1. Make sure visibility of the app is the same as backend app

image|690x395

  1. Add Dependency following steps from “Backend Dependencies to a Frontend App” section above
  2. Add Provision for fronted app following steps in section “Creating App Provisioning” above